#!/usr/bin/env bash

. ./test.common
test_start "NTP eras"

# Assume NTP_ERA_SPLIT is between years 1960 and 1990

# Set date to 500 seconds before NTP second overflows, this should
# work correctly with both 32-bit and 64-bit time_t
export CLKNETSIM_START_DATE=$(date -d 'Feb  7 06:19:56 UTC 2036' +'%s')

run_test || test_fail
check_chronyd_exit || test_fail
check_source_selection || test_fail
check_packet_interval || test_fail
check_sync || test_fail

# The following tests need 64-bit time_t
check_config_h 'HAVE_LONG_TIME_T 1' || test_skip

for year in 1990 2090; do
	export CLKNETSIM_START_DATE=$(date -d "Jan  1 00:00:00 UTC $year" +'%s')
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_source_selection || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
done

for year in 1950 2130; do
	export CLKNETSIM_START_DATE=$(date -d "Jan  1 00:00:00 UTC $year" +'%s')
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_source_selection || test_fail
	check_packet_interval || test_fail
	# This check is expected to fail
	check_sync && test_fail
done

test_pass
